// 引入必要的命名空间  
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// 定义一个名为AfterIamgeFX的类，它继承自MonoBehaviour，用于Unity中的游戏对象  
public class AfterIamgeFX : MonoBehaviour
{
    // 声明一个SpriteRenderer类型的私有变量，用于访问和操作游戏对象的渲染属性  
    private SpriteRenderer sr;

    // 声明一个私有变量，用于存储颜色消失的速度（每秒减少的alpha值）  
    private float colorLooseRate;

    // 定义一个公共方法，用于设置残影效果  
    // 参数_loosingSpeed是颜色消失的速度，_spriteImage是要显示的Sprite  
    public void SetupAfterImage(float _loosingSpeed, Sprite _spriteImage)
    {
        // 获取当前游戏对象上的SpriteRenderer组件，并赋值给sr变量  
        sr = GetComponent<SpriteRenderer>();

        // 设置SpriteRenderer的Sprite属性为传入的_spriteImage  
        sr.sprite = _spriteImage;

        // 设置颜色消失的速度  
        colorLooseRate = _loosingSpeed;
    }

    // Unity的Update方法，每帧都会调用一次  
    private void Update()
    {
        // 计算新的alpha值，当前alpha值减去颜色消失速度乘以时间间隔（Time.deltaTime）  
        float alpha = sr.color.a - colorLooseRate * Time.deltaTime;

        // 设置SpriteRenderer的颜色，保留RGB值不变，只改变alpha值  
        sr.color = new Color(sr.color.r, sr.color.g, sr.color.b, alpha);

        // 如果alpha值小于或等于0，销毁当前游戏对象  
        // 这意味着当图像完全透明时，它会从场景中移除  
        if (sr.color.a <= 0)
        {
            Destroy(gameObject); // 销毁当前游戏对象  
        }
    }
}